package tcc.war.autenticador.bean.base;

import java.io.Serializable;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import org.primefaces.event.CloseEvent;
import org.primefaces.event.DashboardReorderEvent;
import org.primefaces.event.ToggleEvent;
import org.primefaces.model.DashboardColumn;
import org.primefaces.model.DashboardModel;
import org.primefaces.model.DefaultDashboardColumn;
import org.primefaces.model.DefaultDashboardModel;


@ManagedBean(name="dashboardBean")
@ViewScoped
public class DashboardMBean implements Serializable {


	private static final long serialVersionUID = 2870242249073059799L;
	private DashboardModel model;
	
	public DashboardMBean() {
		model = new DefaultDashboardModel();
		DashboardColumn column1 = new DefaultDashboardColumn();
		DashboardColumn column2 = new DefaultDashboardColumn();
		DashboardColumn column3 = new DefaultDashboardColumn();
		DashboardColumn column4 = new DefaultDashboardColumn();
		DashboardColumn column5 = new DefaultDashboardColumn();
		DashboardColumn column6 = new DefaultDashboardColumn();
		DashboardColumn column7 = new DefaultDashboardColumn();
		DashboardColumn column8 = new DefaultDashboardColumn();
		DashboardColumn column9 = new DefaultDashboardColumn();
		DashboardColumn column10 = new DefaultDashboardColumn();
		
		column1.addWidget("relatorio1");
		column1.addWidget("relatorio2");
		column2.addWidget("relatorio3");
		column3.addWidget("relatorio4");
		column4.addWidget("relatorio5");
		column5.addWidget("relatorio6");
		column6.addWidget("relatorio7");
		column3.addWidget("relatorio8");
		column7.addWidget("relatorio9");
		column4.addWidget("relatorio10");

		model.addColumn(column1);
		model.addColumn(column2);
		model.addColumn(column3);
		model.addColumn(column4);
		model.addColumn(column5);
		model.addColumn(column6);
		model.addColumn(column7);
	}
	
	public void handleReorder(DashboardReorderEvent event) {
		FacesMessage message = new FacesMessage();
		message.setSeverity(FacesMessage.SEVERITY_INFO);
		message.setSummary("Reordered: " + event.getWidgetId());
		message.setDetail("Item index: " + event.getItemIndex() + ", Column index: " + event.getColumnIndex() + ", Sender index: " + event.getSenderColumnIndex());
		
		addMessage(message);
	}
	
	public void handleClose(CloseEvent event) {
		FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Panel Closed", "Closed panel id:'" + event.getComponent().getId() + "'");
		
		addMessage(message);
	}
	
	public void handleToggle(ToggleEvent event) {
		FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, event.getComponent().getId() + " toggled", "Status:" + event.getVisibility().name());
		
		addMessage(message);
	}
	
	private void addMessage(FacesMessage message) {
		FacesContext.getCurrentInstance().addMessage(null, message);
	}
	
	public DashboardModel getModel() {
		return model;
	}
}